-- 定义自定义映射
vim.api.nvim_set_keymap("n", "mj", ":lua translate_and_paste()<CR>", { noremap = true, silent = true })

-- 定义 Lua 函数
function translate_and_paste()
  -- 获取用户输入的中文
  local chinese = vim.fn.input("输入中文: ")

  -- 调用 kd 命令进行翻译
  local command = "kd " .. vim.fn.shellescape(chinese)
  local handle = io.popen(command)
  local result = handle:read("*a")
  handle:close()

  -- 提取第二行的内容
  local lines = {}
  for line in result:gmatch("[^\r\n]+") do
    table.insert(lines, line)
  end

  -- 如果没有第二行，直接返回
  if #lines < 2 then
    print("没有找到翻译结果")
    return
  end

  -- 提取第二行的英文单词（去掉前缀和多余符号）
  local second_line = lines[2]
  local words = second_line:gsub("^[^ ]+%.", ""):gsub("⸺", ""):gsub("≫.*", "") -- 去掉前缀和多余符号
  words = words:gsub("%s+", "") -- 去掉多余的空格

  -- 按分号分割单词
  local word_list = {}
  for word in words:gmatch("[^;]+") do
    table.insert(word_list, word)
  end

  -- 如果没有单词，直接返回
  if #word_list == 0 then
    print("没有找到英文单词")
    return
  end

  -- 创建选择界面
  vim.ui.select(word_list, {
    prompt = "选择一个单词粘贴:",
    format_item = function(item)
      return item
    end,
  }, function(choice)
    if choice then
      -- 将选择的单词粘贴到当前光标位置
      vim.api.nvim_put({ choice }, "c", false, true)
    end
  end)
end
